﻿using ZQNB.Common.NHExtensions;

namespace ZQNB.Entity.Dics
{
    /// <summary>
    /// 字典类型
    /// </summary>
    public class DicType : NbEntity<DicType>
    {
        public DicType()
        {
            InUse = true;
            CanEdit = false;
        }

        /// <summary>
        /// 作为唯一键使用，不可更改：Grade,Subject等
        /// </summary>
        public string Code { get; set; }

        /// <summary>
        ///  显示名：学科，年级
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 是否启用
        /// </summary>
        public bool InUse { get; set; } 

        /// <summary>
        /// 字典类型的显示排序
        /// </summary>
        public double SortNum { get; set; }

        /// <summary>
        /// 某些字典类型下的条目不需要提供修改功能
        /// </summary>
        public bool CanEdit { get; set; } 
    }
    
    /// <summary>
    /// 字典项模板
    /// </summary>
    public class DicItem : NbEntity<DicItem>
    {
        public DicItem()
        {
            InUse = true;
        }

        /// <summary>
        /// 是否是预置数据
        /// 预置数据不可以被删除
        /// </summary>
        public virtual bool IsInitData
        {
            get
            {
                //if (DicConst.anonymous.Equals(Code, StringComparison.OrdinalIgnoreCase)
                //    || DicConst.admin.Equals(Code, StringComparison.OrdinalIgnoreCase)
                //    || DicConst.member.Equals(Code, StringComparison.OrdinalIgnoreCase)
                //    //课堂评价专家角色
                //    || DicConst.lsmhexpert.Equals(Code, StringComparison.OrdinalIgnoreCase))
                //{
                //    return false;
                //}

                return true;
            }
        }

        public virtual string Code { get; set; } //可空，国家标准的时候有对应的编码，否则m000n
        public virtual string Name { get; set; } //语文或国语（显示名字，不同TypeCode可重复）
        public virtual double SortNum { get; set; }
        public virtual bool InUse { get; set; }
        /// <summary>
        /// 可空，同一种字典内如果需要分类别的话，可以使用。例如：
        /// 组织类别（云中心（1），站（2），机构（2），小学（3），初中（3），高中（3），完中（3），班级（4），其他定义（4））
        /// 用户类型（领导（1），老师（1），家长(3)，学生(4)）
        /// </summary>
        public virtual string SubCategory { get; set; }
        public virtual string Tags { get; set; } //yw,yuwen，语文，gy,guoyu,国语，可空预留将来做模糊匹配用
        public virtual string Description { get; set; } //备注
        public virtual string DicTypeCode { get; set; }
    }
}
